from langchain.prompts import ChatPromptTemplate
import os

from langchain_openai import ChatOpenAI

os.environ["DASHSCOPE_API_KEY"] = 'sk-c44402d7a12c41299bb716af8d7e8bac'

llm = ChatOpenAI(
    api_key=os.getenv("DASHSCOPE_API_KEY"),  # 如果您没有配置环境变量，请在此处用您的API Key进行替换
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",  # 填写DashScope base_url
    model="qwen-plus"
)

report_prompt_template = ChatPromptTemplate.from_messages(
    [
        ('human', """你是一个哔哩哔哩UP主，现在需要你根据以下内容生成一篇关于麦当劳新品的测评报告。
            新品名称: {food_name}
        """)
    ]
)

bl_prompt_template = """
    (C) 上下文:
    我是一个测评过很多快餐的哔哩哔哩UP主，通常会分享美食相关的内容，特别是快餐测评。最近，一个知名视频博主发布了一篇详细的新品测评报告，你需要根据这篇报告撰写一个视频文案，以便向你的粉丝推荐这款新品并提供你的见解。

    快餐新品测评报告: {food_name}

    (O) 目的:
    撰写一个吸引人的哔哩哔哩视频文案，概要介绍视频博主的新品测评报告，并提供你的简短评价，鼓励粉丝观看原视频。

    (S) 样式:
    使用美食测评领域常见的专业且亲切的风格，展示你对新品测评的专业知识，同时保持轻松易懂。

    (T) 语调:
    采用热情且可信赖的语气，传递你对这款新品的真实评价，让粉丝感受到你的专业性和热情。

    (A) 受众:
    目标受众为对美食和新品测评感兴趣的普通消费者，他们希望了解最新新品的特点和性能。

    (R) 响应:
    视频文案的格式应包括:简要介绍、主要亮点、个人评价、鼓励粉丝去购买这个新品的呼吁。
"""

bl_prompt_template = ChatPromptTemplate.from_messages(
    [
        ('human', bl_prompt_template)
    ]
)

report_chain = report_prompt_template | llm
print(report_chain.invoke({'food_name': '9.9元现烤鸡腿堡'}))

wb_chain = {'food_name': report_chain} | bl_prompt_template | llm

response = wb_chain.invoke({'food_name': '9.9元现烤鸡腿堡'})

print(response)
